`ifndef TEST_SV
`define TEST_SV

`include "transaction.svh"
`include "svm_config_db.svh"

module automatic test;
	int low = 0, high = 99, i;
	real pi = 3.14, j;
	config_info cfg, k;

	initial begin
		cfg = new(8);

		svm_config_db#(int)::set("low", low); // 保存变量low到int配置数据库，索引为“low”
		svm_config_db#(int)::set("high", high); // 保存变量high到int配置数据库，索引为“high”
		svm_config_db#(real)::set("pi", pi); // 保存变量pi到real配置数据库，索引为“pi”
		svm_config_db#(config_info)::set("cfg", cfg); // 保存句柄cfg到config_info配置数据库，索引为“cfg”

		svm_config_db#(int)::dump();  // 打印int配置数据库
		svm_config_db#(real)::dump(); // 打印real配置数据库
		svm_config_db#(config_info)::dump();   // 打印config_info配置数据库

		svm_config_db#(int)::get("high", i); // 取出索引为“high”的整数值
		$display("i is configured to %0d", i);
		svm_config_db#(real)::get("pi", j); // 取出索引为“pi”的实数值
		$display("j is configured to %f", j);
		svm_config_db#(config_info)::get("cfg", k); // 取出索引为“cfg”的config_info类型的句柄
		$display("k is configured to %0p", k);
	end
endmodule

`endif
